package br.com.rotaestatistica.utils;

import java.util.List;

import br.com.rotaestatistica.entities.TrajetoEntity;

public class Calculo {
	
	public double tempoMedio(List<TrajetoEntity> lista){
		double media = 0;
		int soma = 0;
		for(TrajetoEntity trajeto: lista){
			soma = soma + trajeto.getDuracao();
		}
		media =(double) soma / lista.size();
		
		return media;
	}
	
	public int tempoMinimo(List<TrajetoEntity> lista){
		int minimo = 0;
		for(TrajetoEntity trajeto:lista){
			if(trajeto.getDuracao() < minimo || minimo == 0){
				minimo = trajeto.getDuracao();
			}
		}
		return minimo;
	}
	
	public int tempoMaximo(List<TrajetoEntity> lista){
		int maximo = 0;
		for(TrajetoEntity trajeto:lista){
			if(trajeto.getDuracao() > maximo){
				maximo = trajeto.getDuracao();
			}
		}
		return maximo;
	}
	
	public double somaDosTemposAoQuadrado(List<TrajetoEntity> lista){
		double soma= 0;
		for(TrajetoEntity trajeto:lista){
			int dur = trajeto.getDuracao();
			soma = soma + dur*dur;
		}
		return soma;
	}
	
	public double variancia(List<TrajetoEntity> lista){
		double d1 = tempoMedio(lista);
		double d2 = somaDosTemposAoQuadrado(lista)/lista.size();
		return d2 - d1*d1;
	}

	public double desvioPadrao(List<TrajetoEntity> lista){
		double var = variancia(lista);
		return Math.sqrt(var);
	}
}
